package AccountEntities;
public class SavingAccount extends Account {
private static final long serialVersionUID = -1197249545293894998L;
private static final double MIN_ADD = 3000.0;
private static final double MAX_WITHDRAW = 2000.0;
public SavingAccount(String ID, String ownerName) {
super(ID, ownerName);
setType();
}
@Override
public void addMoney(double sum) {
assert(sum >= MIN_ADD):"Add more money for Saving Account";
double previousMoney = money;
money += sum;
setChanged();
notifyObservers("You added " + sum + " in " + ID);
assert(money == (previousMoney + sum)):"Wrong sum after addition";
}
@Override
public void withdrawMoney(double sum) {
assert((sum <= MAX_WITHDRAW)&&(sum > 0.0)):"Withdraw more money from Saving Account";
double previousMoney = money;
money -= sum;
setChanged();
notifyObservers("You withdrawn " + sum + " from " + ID);
assert(money == (previousMoney - sum)):"Wrong sum after subtraction";
}
@Override
public void setType() {
type = "saving";
}
@Override
public String toString() {
return "type: "+ type + "\nowner: " + ownerName + "\nmoney: " + money +"\n----------------";
}
}